package cn.stylefeng.guns.modular.transport.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cn.stylefeng.guns.modular.transport.entity.TransportReceipt;
import cn.stylefeng.guns.modular.transport.model.params.TransportReceiptParam;
import cn.stylefeng.guns.modular.transport.model.result.TransportReceiptResult;

/**
 * 回传单表 Mapper 接口
 */
public interface TransportReceiptMapper extends BaseMapper<TransportReceipt> {

    /**
     * 获取列表
     *
     * @author zhucx
     * @Date 2020-01-08
     */
    List<TransportReceiptResult> customList(@Param("paramCondition") TransportReceiptParam paramCondition);

    /**
     * 获取map列表
     *
     * @author zhucx
     * @Date 2020-01-08
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") TransportReceiptParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author zhucx
     * @Date 2020-01-08
     */
    Page<TransportReceiptResult> customPageList(@Param("page") Page page, @Param("paramCondition") TransportReceiptParam paramCondition, @Param("condition") String condition);

    Page<TransportReceiptResult> findTransportSetPageBySpec(@Param("page") Page page, @Param("paramCondition") TransportReceiptParam paramCondition, @Param("condition") String condition);

    /**
     * 获取分页map列表
     *
     * @author zhucx
     * @Date 2020-01-08
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") TransportReceiptParam paramCondition);

	void deleteBySpec(@Param("paramCondition")TransportReceiptParam param);

	TransportReceiptResult sumBySpec(@Param("paramCondition")TransportReceiptParam param);

    List<TransportReceiptResult>  findbyCarnum(@Param("privatecarCarnumber")String privatecarCarnumber);

    TransportReceiptResult findBySpec(@Param("paramCondition")TransportReceiptParam param);

	List<TransportReceiptResult> findListBySpec(@Param("paramCondition")TransportReceiptParam param, @Param("operateId")Long operateId);

	List<TransportReceiptResult> findchengyunshangMingxiCount(@Param("paramCondition")TransportReceiptParam transportReceiptParam, @Param("condition")String condition,
			@Param("driver1")String driver1, @Param("money")String money);

	void updateBySpec(@Param("paramCondition")TransportReceiptParam transportReceiptParam);

	TransportReceiptResult getPrintReceipt(@Param("paramCondition")TransportReceiptParam transportReceiptParam);

	List<TransportReceiptResult> findtransportSetListBySpec(@Param("paramCondition")TransportReceiptParam transportReceiptParam);

	List<TransportReceiptResult> findzcsxListBySpec(@Param("paramCondition")TransportReceiptParam transportReceiptParamzcsx);

	List<TransportReceiptResult> findfenceListBySpec(@Param("paramCondition")TransportReceiptParam transportReceiptParam);

	Integer countcheckzhixing(@Param("dispatchNumber")String dispatchNumber);

	void updatePrint(@Param("paramCondition")TransportReceiptParam transportReceiptParam);


}
